/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/* ===== autocomplete.css =================================================
  == Styles used by the autocomplete widget.
  ======================================================================= */

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
@namespace html url("http://www.w3.org/1999/xhtml");

/* ::::: autocomplete ::::: */

/* .padded is used by autocomplete widgets that don't have an icon. Gross. -dwh */
textbox:not(.padded) {
  cursor: default;
  padding: 0;
}

textbox[nomatch="true"][highlightnonmatches="true"] {
  color: red;
}

.private-autocomplete-textbox-container {
  -moz-box-align: center;
}

textbox:not(.padded) .textbox-input-box {
  margin: 0 3px;
}

.textbox-input-box {
  -moz-box-align: center;
}

/* ::::: autocomplete popups ::::: */

panel[type="private-autocomplete"],
panel[type="private-autocomplete-richlistbox"],
.private-autocomplete-history-popup {
  -moz-appearance: none;
  border-width: 1px;
  -moz-border-top-colors: ThreeDShadow;
  -moz-border-right-colors: ThreeDShadow;
  -moz-border-bottom-colors: ThreeDShadow;
  -moz-border-left-colors: ThreeDShadow;
  padding: 0;
  color: -moz-FieldText;
  background-color: -moz-Field;
}

.private-autocomplete-history-popup {
  max-height: 180px;
}

/* ::::: tree ::::: */

.private-autocomplete-tree {
  -moz-appearance: none !important;
  border: none !important;
  background-color: transparent !important;
}

.private-autocomplete-treecol {
  -moz-appearance: none !important;
  margin: 0 !important;
  border: none !important;
  padding: 0 !important;
}

/* GTK calculates space for a sort arrow */
.private-autocomplete-treecol > .treecol-sortdirection {
  -moz-appearance: none !important;
}

.private-autocomplete-treebody::-moz-tree-cell-text {
  padding-inline-start: 8px;
}

treechildren.private-autocomplete-treebody::-moz-tree-row(selected) {
 background-color: Highlight;
}

treechildren.private-autocomplete-treebody::-moz-tree-cell-text(selected) {
  color: HighlightText !important;
}

.private-autocomplete-treebody::-moz-tree-image(treecolAutoCompleteValue) {
  max-width: 16px;
  height: 16px;
}

/* ::::: richlistbox autocomplete ::::: */

.private-autocomplete-richlistbox {
  -moz-appearance: none;
  margin: 0;
}

.private-autocomplete-richlistitem {
  padding: 1px;
}

.private-autocomplete-richlistitem[selected="true"] {
  background-color: Highlight;
  color: HighlightText;
}

%ifdef XP_WIN
@media (-moz-os-version: windows-vista) and (-moz-windows-default-theme),
       (-moz-os-version: windows-win7) and (-moz-windows-default-theme) {
  .private-autocomplete-richlistitem[selected="true"] {
    color: inherit;
    background-color: transparent;
    /* four gradients for the bevel highlights on each edge, one for blue background */
    background-image:
      linear-gradient(to bottom, rgba(255,255,255,0.9) 3px, transparent 3px),
      linear-gradient(to right, rgba(255,255,255,0.5) 3px, transparent 3px),
      linear-gradient(to left, rgba(255,255,255,0.5) 3px, transparent 3px),
      linear-gradient(to top, rgba(255,255,255,0.4) 3px, transparent 3px),
      linear-gradient(to bottom, rgba(163,196,247,0.3), rgba(122,180,246,0.3));
    background-clip: content-box;
    border-radius: 6px;
    outline: 1px solid rgb(124,163,206);
    -moz-outline-radius: 3px;
    outline-offset: -2px;
  }
}
%endif

.ac-title-box {
  margin-top: 4px;
}

.ac-url-box {
  /* When setting a vertical margin here, half of that needs to be added
     .ac-title-box's translateY for when .ac-url-box is hidden (see below). */
  margin: 1px 0 4px;
}

.private-autocomplete-richlistitem[actiontype="keyword"] .ac-url-box,
.private-autocomplete-richlistitem[actiontype="searchengine"] .ac-url-box,
.private-autocomplete-richlistitem[actiontype="visiturl"] .ac-url-box,
.private-autocomplete-richlistitem[type~="autofill"] .ac-url-box {
  visibility: hidden;
}

.private-autocomplete-richlistitem[actiontype="keyword"] .ac-title-box,
.private-autocomplete-richlistitem[actiontype="searchengine"] .ac-title-box,
.private-autocomplete-richlistitem[actiontype="visiturl"] .ac-title-box,
.private-autocomplete-richlistitem[type~="autofill"] .ac-title-box {
  /* Center the title by moving it down by half of .ac-url-box's height,
     including vertical margins (if any). */
  transform: translateY(calc(.5em + 2px));
}

.ac-site-icon {
  width: 16px; 
  height: 16px;
  margin: 0 5px -2px;
}

.ac-type-icon {
  width: 16px; 
  height: 16px;
  margin-inline-start: 6px;
  margin-inline-end: 4px;
  margin-bottom: -1px;
}

.ac-url-box > .ac-site-icon,
.ac-url-box > .ac-type-icon {
  /* Otherwise the spacer is big enough to stretch its container */
  height: auto;
}

.ac-extra > .ac-result-type-tag {
  margin: 0 4px;
}

.ac-extra > .ac-comment {
  padding-right: 4px;
}

.ac-ellipsis-after {
  margin: 0 !important;
  padding: 0; 
  min-width: 1em;
}

.ac-normal-text {
  margin: 0 !important;
  padding: 0;
}

.ac-normal-text > html|span {
  margin: 0 !important;
  padding: 0;
}

html|span.ac-emphasize-text {
  box-shadow: inset 0 0 1px 1px rgba(208,208,208,0.5);
  background-color: rgba(208,208,208,0.3);
  border-radius: 2px;
  text-shadow: 0 0 currentColor;
}

@media (-moz-windows-default-theme) {
  @media not all and (-moz-os-version: windows-xp) {
    html|span.ac-emphasize-text {
      box-shadow: inset 0 0 1px 1px rgba(0,0,0,0.1);
      background-color: rgba(0,0,0,0.05);
    }
  }

  @media (-moz-os-version: windows-xp) {
    .ac-url-text > html|span.ac-emphasize-text,
    .ac-action-text > html|span.ac-emphasize-text {
      box-shadow: inset 0 0 1px 1px rgba(202,214,201,0.3);
      background-color: rgba(202,214,201,0.2);
    }
  }
}

.ac-title, .ac-url {
  overflow: hidden;
}

/* ::::: textboxes inside toolbarpaletteitems ::::: */

toolbarpaletteitem > toolbaritem > textbox > hbox > hbox > html|*.textbox-input {
  visibility: hidden;
}

toolbarpaletteitem > toolbaritem > * > textbox > hbox > hbox > html|*.textbox-input {
  visibility: hidden;
}

